SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q26]      
/*-------------------------------------------------------------------*/      
/*----- Empresa           : OFISIS S.A.                          ----*/      
/*----- Cliente           : OFISIS S.A.                          ----*/      
/*----- Sistema           : Contabilidad                         ----*/      
/*----- Modulo            : Empresa                              ----*/      
/*----- Programa          : Registro de Compras para el PDT      ----*/      
/*-----                     Solo para Recibos por Honorarios     ----*/      
/*----- Nombre            : SP_TXMVTO_CNTB_Q26                   ----*/      
/*----- Script            : TXMVTO_CNTB                          ----*/      
/*----- Desarrollado por  : Martin Garcia Farfan                 ----*/      
/*----- Fecha             : 17/12/2001                           ----*/      
/*----- Base de Datos     : MS SQL Server                        ----*/      
/*----- Version BD        : 7.0                                  ----*/      
/*----- Invoca a SP       :                                      ----*/      
/*-------------------------------------------------------------------*/      
/*-------------------------------------------------------------------*/      
/*----- Modificado 2 por : Martin Garcia Farfan                  ----*/      
/*----- Fecha Modifica   : 18/12/2001                            ----*/      
/*----- Detalle Modifica : Leer Datos de TMAUXI                  ----*/      
/*-----                    Estructura Archivo                    ----*/      
/*-------------------------------------------------------------------*/      
/*----- MODIFICADO 3     : PDGV                                  ----*/    
/*----- FECHA MODIF      : 10/05/2004                            ----*/       
/*----- DETALLE MODIF    : SE QUITO JOIN CON ESTATUS 'ACT'       ----*/    
/*-------------------------------------------------------------------*/      
/*----- Drop proc SP_TXMVTO_CNTB_Q26                             ----*/      
/*----- Grant all on SP_TXMVTO_CNTB_Q26 to PUBLIC                ----*/      
/*-----     
SP_TXMVTO_CNTB_Q26 '01', 1, 2006, 12                        
  ----*/      
/*-------------------------------------------------------------------*/      
@ISCO_EMPR        TD_VC_002,      
@INNU_CNTB_EMPR   TD_IN_001_CONT,      
@INNU_ANNO        TD_IN_004_ANNO,      
@INNU_MESE        TD_IN_002_MESE      
      
As      
       
Declare       
@VSNS_ASTO_BASE     char(16),      
@VSCO_MONE_BASE   TD_VC_003,      
@VSCO_MONE_BAS1   TD_VC_003,      
@VNIM_TOTA_BASX   TD_NU_016_004,      
@VNIM_TOTA_BASY   TD_NU_016_004,      
@VDFE_DOCU   TD_DT_001,      
@VSTI_DOCU_CNTB   TD_VC_003,      
@VSNU_DOCU   TD_VC_020,      
@VSCO_UNID   TD_VC_003,      
@VSCO_OPRC   TD_VC_003,      
@VSNS_ASTO   TD_VC_010,      
@VSTI_AUXI_EMPR   TD_VC_001,      
@VSCO_PROV   TD_VC_020,      
@VSNO_CORT_PROV   TD_VC_050,      
@VSNU_RUCS_PROV   Varchar(11),      
@VSCO_MONE   TD_VC_003,      
@VNIM_INAF_ORIX   TD_NU_016_004,      
@VNIM_AFEC_ORIX   TD_NU_016_004,      
@VNIM_IIGV_ORIX   TD_NU_016_004,      
@VNIM_FONA_ORIX   TD_NU_016_004,      
@VNIM_RENT_ORIX   TD_NU_016_004,      
@VNIM_TOTA_ORIX   TD_NU_016_004,      
@VNIM_INAF_SOLX   TD_NU_016_004,      
@VNIM_AFEC_SOLX   TD_NU_016_004,      
@VNIM_IIGV_SOLX   TD_NU_016_004,      
@VNIM_FONA_SOLX   TD_NU_016_004,      
@VNIM_RENT_SOLX   TD_NU_016_004,      
@VNIM_TOTA_SOLX   TD_NU_016_004,      
@VNFA_CAMB   TD_NU_009_004,      
@VNIM_IIGV_ORIG   TD_NU_016_004,      
@VNIM_FONA_ORIG   TD_NU_016_004,      
@VNIM_RENT_ORIG   TD_NU_016_004,      
@VNIM_TOTA_ORIG   TD_NU_016_004,      
@VNIM_IIGV_SOLE   TD_NU_016_004,      
@VNIM_FONA_SOLE   TD_NU_016_004,      
@VNIM_RENT_SOLE   TD_NU_016_004,      
@VNIM_TOTA_SOLE   TD_NU_016_004,      
@VNPO_IGV1   TD_NU_009_004,      
@VNPO_IGV2   TD_NU_009_004,      
@VNPO_REN1   TD_NU_009_004,      
@VNPO_REN2   TD_NU_009_004,      
@VNPO_REN1_0001 TD_NU_009_004,      
@VNPO_IESS        TD_NU_009_004,      
@VSCO_OPR1 TD_VC_003,      
@VSCO_OPR2   TD_VC_003,      
@VSID_COMP    TD_VC_003,      
@VSID_IIGV    TD_VC_003,      
@VSID_FONA    TD_VC_003,      
@VSID_RENT    TD_VC_003,      
@VSTI_DOCU_AUXI   char(06),      
@VSCO_SUNA   TD_VC_002,      
@CSID_CNTA    TD_VC_003,      
@CDFE_DOCU   TD_DT_001,      
@CSTI_DOCU_CNTB   TD_VC_003,      
@CSNU_DOCU   TD_VC_020,      
@CSCO_UNID   TD_VC_003,      
@CSCO_OPRC   TD_VC_003,      
@CSNS_ASTO   TD_VC_010,      
@CSCO_AUXI   TD_VC_020,      
@CSCN_CNTB_EMPR   TD_VC_010,      
@CSTI_OPER_CNTB   TD_VC_003,      
@CSCO_MONE   TD_VC_003,      
@CNFA_CAMB   TD_NU_009_004,      
@CNIM_MVTO_ORIG   TD_NU_016_004,      
@CNIM_MVTO_CNTB   TD_NU_016_004,        
@CSTI_AUXI_EMPR   TD_VC_001      
      
Create Table #TWMVTO_CNTB_Q26_1      
(FE_DOCU        Datetime       NULL,      
 TI_DOCU_SUNA   Varchar(02)    NULL,      
 TI_DOCU_CNTB   Varchar(03)    NULL,      
 NU_DOCU        Varchar(20)    NULL,      
 CO_UNID_RGST   Varchar(03)    NULL,      
 CO_OPRC        Varchar(03)    NULL,      
 NS_ASTO        Varchar(10)    NULL,      
 TI_AUXI_EMPR   Varchar(01)    NULL,      
 CO_PROV        varchar(20)    NULL,      
 NO_CORT_PROV   Varchar(50)    NULL,      
 NU_RUCS_PROV   Varchar(11)    NULL,      
 CO_MONE        Varchar(03)    NULL,      
 IM_INAF_ORIG   Numeric(16,4)  NULL,      
 IM_AFEC_ORIG   Numeric(16,4)  NULL,           
 IM_IIGV_ORIG   Numeric(16,4)  NULL,      
 IM_FONA_ORIG   Numeric(16,4)  NULL,      
 IM_RENT_ORIG   Numeric(16,4)  NULL,      
 IM_TOTA_ORIG   Numeric(16,4)  NULL,      
 IM_INAF_SOLE   Numeric(16,4)  NULL,      
 IM_AFEC_SOLE   Numeric(16,4)  NULL,      
 IM_IIGV_SOLE   Numeric(16,4)  NULL,      
 IM_FONA_SOLE   Numeric(16,4)  NULL,      
 IM_RENT_SOLE   Numeric(16,4)  NULL,      
 IM_TOTA_SOLE   Numeric(16,4)  NULL,      
 FA_CAMB        Numeric(9,4)   NULL,      
 IM_BASE_NGRA   Numeric(16,4)  NULL,      
 IM_BASE_SDCF   Numeric(16,4)  NULL,      
 IM_IIGV_IISC   Numeric(16,4)  NULL,      
 IM_IIGV_NGRA   Numeric(16,4)  NULL,      
 IM_IIGV_SDCF   Numeric(16,4)  NULL)      
      
/*----- Inicializando las variables -----*/      
Select @VNIM_IIGV_ORIG = 0.00      
Select @VNIM_FONA_ORIG = 0.00      
Select @VNIM_RENT_ORIG = 0.00      
Select @VNIM_TOTA_ORIG = 0.00      
Select @VDFE_DOCU      = Null      
Select @VSTI_DOCU_CNTB = Null      
Select @VSNS_ASTO      = Null      
Select @VSTI_AUXI_EMPR = Null      
Select @VSCO_PROV      = Null      
Select @VSNO_CORT_PROV = Null      
Select @VSNU_RUCS_PROV = Null      
Select @VSCO_MONE      = Null      
Select @VNIM_AFEC_ORIX = 0.00      
Select @VNIM_INAF_ORIX = 0.00      
Select @VNIM_IIGV_ORIX = 0.00      
Select @VNIM_FONA_ORIX = 0.00      
Select @VNIM_RENT_ORIX = 0.00      
Select @VNIM_TOTA_ORIX = 0.00      
Select @VNIM_AFEC_SOLX = 0.00      
Select @VNIM_INAF_SOLX = 0.00      
Select @VNIM_IIGV_SOLX = 0.00      
Select @VNIM_FONA_SOLX = 0.00      
Select @VNIM_RENT_SOLX = 0.00      
Select @VNIM_TOTA_ORIX = 0.00      
Select @VNFA_CAMB      = 0.00          
      
-- Borro la tabla TWPDTS_RETE      
Delete TWPDTS_RETE      
      
/*----- Obteniendo datos de Nro. de Contabilidad -----*/      
Select       
 @VSCO_MONE_BAS1 = CO_MONE,      
 @VSID_COMP   = ID_COMP,       
 @VSID_IIGV    = ID_IMPT_VENT,       
 @VSID_FONA   = ID_FONA,       
 @VSID_RENT   = ID_IMPT_RENT      
From TTCNTB_EMPR      
Where       
 CO_EMPR = @ISCO_EMPR and      
 NU_CNTB_EMPR = @INNU_CNTB_EMPR      
      
Select       
 @VNPO_REN1  = PO_IMPT_REN1,      
 @VNPO_REN2  = PO_IMPT_REN2,      
 @VNPO_IGV1   = PO_IMPT_VEN1,       
 @VNPO_IGV2   = PO_IMPT_VEN2,      
 @VNPO_IESS      = PO_IMPT_FON1      
From TTPORC_IMPT      
Where       
CO_EMPR = @ISCO_EMPR       
And NU_ANNO = @INNU_ANNO       
And NU_MESE = @INNU_MESE       
    
Select @VNPO_REN1_0001 = IsNull(@VNPO_REN1,0) + IsNull(@VNPO_REN2,0)    
      
If @VNPO_IGV1 IS Null      
 Select @VNPO_IGV1 = 0.00      
If @VNPO_IGV2 IS Null      
 Select @VNPO_IGV2 = 0.00      
If @VNPO_REN1 IS Null      
 Select @VNPO_REN1 = 0.00      
If @VNPO_REN2 IS Null      
 Select @VNPO_REN2 = 0.00      
If @VNPO_IESS IS Null      
 Select @VNPO_IESS = 0.00      
      
/*----- Cursor para el reporte de Registro de Compras -----*/      
Declare CU_TXMVTO_CNTB_Q24_1 Cursor      
 For      
  Select t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU, t1.CO_UNID_CNTB, t1.CO_OPRC_CNTB,       
         t1.NU_ASTO, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.CO_CNTA_EMPR, t1.TI_OPER,       
         t1.CO_MONE, t1.FA_CAMB, t1.IM_MVTO_ORIG, t1.IM_MVTO_CNTB, t2.ID_CNTA      
   From TXMVTO_CNTB t1, TTIDEN_CNTA t2, TMOPRC_CNTB t3, TMPLAN_EMPR t4      
   Where   t1.CO_EMPR = @ISCO_EMPR      
    and t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR      
    and t1.CO_OPRC_CNTB in (Select CO_OPRC_CNTB From TTIDEN_OPER Where CO_EMPR = @ISCO_EMPR       
    And NU_CNTB_EMPR = @INNU_CNTB_EMPR  And  ID_OPRC = @VSID_COMP)      
    and t1.NU_ANNO = @INNU_ANNO       
    and t1.NU_MESE = @INNU_MESE      
    and t1.CO_CNTA_EMPR in (Select CO_CNTA_EMPR From TTIDEN_CNTA Where CO_EMPR = @ISCO_EMPR And       
                          NU_CNTB_EMPR = @INNU_CNTB_EMPR And      
                  ID_CNTA = @VSID_COMP or ID_CNTA = @VSID_IIGV or      
                          ID_CNTA = '014' or ID_CNTA = '018')      
    and t1.SI_MVTO_CNTB = 'APR'      
--    And t1.ST_DIFE_CAMB = 'N'     
    and t2.CO_EMPR  = t1.CO_EMPR      
    and t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR      
    and t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR      
    And t1.CO_EMPR = t3.CO_EMPR       
    And t1.CO_OPRC_CNTB = t3.CO_OPRC_CNTB      
--    And t3.TI_SITU = 'ACT'      
    And t1.CO_EMPR = t4.CO_EMPR       
    And t4.NU_ANNO = 9999      
    And t1.CO_CNTA_EMPR = t4.CO_CNTA_EMPR       
--    And t4.TI_SITU = 'ACT'      
--    And t4.NU_ANNO In (Select Max(NU_ANNO) From TMPLAN_EMPR Where CO_EMPR = @ISCO_EMPR and NU_ANNO =@INNU_ANNO)      
   Order By t1.CO_UNID_CNTB, t1.CO_OPRC_CNTB, t1.NU_MESE, t1.NU_ASTO,       
      t1.CO_CNTA_EMPR desc, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR      
      
 Open CU_TXMVTO_CNTB_Q24_1      
 Fetch CU_TXMVTO_CNTB_Q24_1 into      
    @CDFE_DOCU, @CSTI_DOCU_CNTB,  @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CSNS_ASTO, @CSTI_AUXI_EMPR,      
    @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB, @CSCO_MONE, @CNFA_CAMB,  @CNIM_MVTO_ORIG,      
    @CNIM_MVTO_CNTB, @CSID_CNTA      
      
Select @VSNS_ASTO_BASE = Null      
Select @VSCO_MONE_BASE = Null      
      
/*-------- Acumula Movimientos -----*/      
While @@Fetch_status = 0      
Begin      
/*----- Actualiza Temporal -----*/      
If @VSNS_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) + Rtrim(@CSNS_ASTO)      
    And @VSCO_MONE_BASE IS NOT Null      
      
Begin      
  Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)      
  Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100), 2)      
  If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50      
   Begin      
     Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)      
     Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)      
   End          
  Else      
   Begin      
     Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)      
     Select @VNIM_INAF_ORIX = 0.00      
   End          
  If @VSCO_MONE != @VSCO_MONE_BAS1      
   Begin      
     Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG      
     Select @VNIM_FONA_ORIX = @VNIM_FONA_ORIG      
     Select @VNIM_RENT_ORIX = @VNIM_RENT_ORIG      
     Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX + @VNIM_RENT_ORIX)      
     Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX * @VNFA_CAMB,2)      
     Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX * @VNFA_CAMB,2)      
     Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_TOTA_SOLX = Round((@VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX + @VNIM_RENT_ORIX))* @VNFA_CAMB,2)      
   End      
  Else      
   Begin      
     Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)      
     Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)      
     Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)      
     Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG,2)      
     Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG,2)      
     Select @VNIM_TOTA_SOLX = Round((@VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX +@VNIM_RENT_ORIX)),2)      
     Select @VNIM_AFEC_ORIX = Null      
     Select @VNIM_INAF_ORIX = Null      
     Select @VNIM_IIGV_ORIX = Null      
     Select @VNIM_FONA_ORIX = Null      
     Select @VNIM_RENT_ORIX = Null      
     Select @VNIM_TOTA_ORIX = Null      
     Select @VNFA_CAMB = Null      
   End      
      
 Select @VSCO_SUNA = CO_SUNA From TTDOCU_CNTB      
    Where TI_DOCU = @VSTI_DOCU_CNTB      
       
  Select @VSTI_DOCU_AUXI = @VSTI_DOCU_CNTB      
     
   Insert Into #TWMVTO_CNTB_Q26_1 Values      
     (@VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU_AUXI, @VSNU_DOCU, @VSCO_UNID,      
      @VSCO_OPRC, @VSNS_ASTO, @VSTI_AUXI_EMPR, @VSCO_PROV, @VSNO_CORT_PROV,       
      @VSNU_RUCS_PROV, @VSCO_MONE,      
      @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_IIGV_ORIX, @VNIM_FONA_ORIX,      
      @VNIM_RENT_ORIX, @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX,       
      @VNIM_IIGV_SOLX, @VNIM_FONA_SOLX, @VNIM_RENT_SOLX, @VNIM_TOTA_SOLX,       
      @VNFA_CAMB, 0.00, 0.00, 0.00, 0.00, 0.00)      
      
   Select @VSCO_MONE_BASE = Null      
   Select @VDFE_DOCU = Null      
   Select @VSTI_DOCU_CNTB = Null      
   Select @VSNS_ASTO = Null      
   Select @VSTI_AUXI_EMPR = Null      
   Select @VSCO_PROV = Null      
   Select @VSNO_CORT_PROV = Null      
   Select @VSNU_RUCS_PROV  = Null      
   Select @VSCO_MONE = Null      
   Select @VNIM_IIGV_ORIG = 0.00      
   Select @VNIM_FONA_ORIG = 0.00      
   Select @VNIM_RENT_ORIG = 0.00      
   Select @VNIM_TOTA_ORIG = 0.00      
   Select @VNIM_AFEC_ORIX = 0.00      
   Select @VNIM_INAF_ORIX = 0.00      
   Select @VNIM_IIGV_ORIX = 0.00      
   Select @VNIM_FONA_ORIX = 0.00      
   Select @VNIM_RENT_ORIX = 0.00      
   Select @VNIM_TOTA_ORIX = 0.00      
   Select @VNIM_AFEC_SOLX = 0.00      
   Select @VNIM_INAF_SOLX = 0.00      
   Select @VNIM_IIGV_SOLX = 0.00      
   Select @VNIM_FONA_SOLX = 0.00         
   Select @VNIM_RENT_SOLX = 0.00      
   Select @VNIM_TOTA_ORIX = 0.00      
   Select @VNFA_CAMB = 0.00          
 End      
/*-----  Acumula Movimientos - Provisiones -----*/      
Select @VSNS_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) + RTrim(@CSNS_ASTO)      
 If @CSID_CNTA = '001'      
  Begin      
    If @VSCO_MONE_BASE IS Null      
      Begin      
        Select @VSTI_AUXI_EMPR = TI_AUXI_EMPR,      
               @VSCO_PROV = CO_AUXI_EMPR,      
               @VSNO_CORT_PROV = NO_AUXI,        
               @VSNU_RUCS_PROV = NU_RUCS      
        From TMAUXI_EMPR      
        Where CO_EMPR = @ISCO_EMPR And      
              TI_AUXI_EMPR = @CSTI_AUXI_EMPR And      
              CO_AUXI_EMPR = @CSCO_AUXI      
        If @@rowcount = 0      
         Begin      
           Select @VDFE_DOCU = Null      
           Select @VSTI_DOCU_CNTB = Null      
           Select @VSNU_DOCU = Null      
           Select @VSTI_AUXI_EMPR = Null      
           Select @VSCO_PROV = Null       
           Select @VSNO_CORT_PROV = Null      
           Select @VSNU_RUCS_PROV = Null      
         End      
        Else       
         Begin      
           Select @VDFE_DOCU = @CDFE_DOCU      
           Select @VSTI_DOCU_CNTB = @CSTI_DOCU_CNTB      
           Select @VSNU_DOCU = @CSNU_DOCU      
         End      
        Select @VSCO_UNID = @CSCO_UNID       
        Select @VSCO_OPRC = @CSCO_OPRC      
        Select @VSNS_ASTO = @CSNS_ASTO      
        Select @VSCO_MONE = @CSCO_MONE      
        Select @VNFA_CAMB = Round(@CNFA_CAMB,3)      
        Select @VSCO_MONE_BASE = @CSCO_MONE      
      End      
        
     If @VSCO_MONE_BASE IS NOT Null      
      Begin      
        If @VSCO_MONE_BASE != @CSCO_MONE      
         Begin      
           Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)      
         End      
       If @CSTI_OPER_CNTB = 'ABO'      
        Begin      
           Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)      
        End      
       Else If @CSTI_OPER_CNTB = 'CAR'      
        Begin      
           Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2)      
        End      
     End      
    End      
   /*-----  Acumula Movimientos - IGV  -----*/      
   If @CSID_CNTA = '009'      
    Begin      
     If @VSCO_MONE_BASE IS NOT Null      
      Begin      
       If @VSCO_MONE_BASE != @CSCO_MONE      
        Begin      
         Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)      
        End      
       If @CSTI_OPER_CNTB = 'CAR'      
        Begin      
         Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2)      
        End      
       Else If @CSTI_OPER_CNTB = 'ABO'      
        Begin      
         Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)      
End       
      End      
    End      
       
   /*-----  Acumula Movimientos - IES (Ex FONAVI) -----*/      
   If @CSID_CNTA = '014'      
    Begin      
     If @VSCO_MONE_BASE IS NOT Null      
      Begin      
       If @VSCO_MONE_BASE != @CSCO_MONE      
        Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)      
       If @CSTI_OPER_CNTB = 'CAR'      
        Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG + @CNIM_MVTO_ORIG,2)      
       Else If @CSTI_OPER_CNTB = 'ABO'      
        Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG - @CNIM_MVTO_ORIG,2)      
      End      
    End      
       
   /*-----   Acumula Movimientos - 4ta. CAT.   -----*/      
   If @CSID_CNTA = '018'      
    Begin      
     If @VSCO_MONE_BASE IS NOT Null      
      Begin      
       If @VSCO_MONE_BASE != @CSCO_MONE      
        Begin      
         Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)      
      
        End      
       If @CSTI_OPER_CNTB = 'CAR'      
        Begin      
         Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG + @CNIM_MVTO_ORIG,2)      
        End      
       Else If @CSTI_OPER_CNTB = 'ABO'      
        Begin      
 Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG - @CNIM_MVTO_ORIG,2)      
        End      
      End      
    End      
    Fetch CU_TXMVTO_CNTB_Q24_1 into      
     @CDFE_DOCU, @CSTI_DOCU_CNTB,  @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CSNS_ASTO, @CSTI_AUXI_EMPR,      
     @CSCO_AUXI,@CSCN_CNTB_EMPR, @CSTI_OPER_CNTB, @CSCO_MONE, @CNFA_CAMB,  @CNIM_MVTO_ORIG,      
     @CNIM_MVTO_CNTB,@CSID_CNTA      
 End      
 Close CU_TXMVTO_CNTB_Q24_1      
 Deallocate CU_TXMVTO_CNTB_Q24_1      
      
If  @VSCO_MONE_BASE IS NOT Null       
 Begin      
   Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)      
   Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)      
  If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50      
   Begin      
     Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)      
     Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)      
   End          
  Else      
   Begin      
     Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)      
     Select @VNIM_INAF_ORIX = 0.00      
   End          
  If @VSCO_MONE != @VSCO_MONE_BAS1      
   Begin      
     Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG      
     Select @VNIM_FONA_ORIX = @VNIM_FONA_ORIG      
     Select @VNIM_RENT_ORIX = @VNIM_RENT_ORIG      
     Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG      
     Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX * @VNFA_CAMB,2)      
     Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX * @VNFA_CAMB,2)      
     Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG * @VNFA_CAMB,2)      
     Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG * @VNFA_CAMB,2)      
   End      
  Else      
   Begin      
     Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)      
     Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)      
     Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)      
     Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG,2)      
     Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG,2)      
     Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG,2)      
     Select @VNIM_AFEC_ORIX = Null      
     Select @VNIM_INAF_ORIX = Null      
     Select @VNIM_IIGV_ORIX = Null      
     Select @VNIM_FONA_ORIX = Null      
     Select @VNIM_RENT_ORIX = Null      
     Select @VNIM_TOTA_ORIX = Null      
     Select @VNFA_CAMB      = Null      
   End      
   Select @VSCO_SUNA = CO_SUNA From TTDOCU_CNTB      
    Where TI_DOCU = @VSTI_DOCU_CNTB      
         
   Select @VSTI_DOCU_AUXI = @VSTI_DOCU_CNTB      
         
   Insert Into #TWMVTO_CNTB_Q26_1 Values      
     (@VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU_AUXI, @VSNU_DOCU, @VSCO_UNID,      
      @VSCO_OPRC, @VSNS_ASTO, @VSTI_AUXI_EMPR, @VSCO_PROV, @VSNO_CORT_PROV,       
      @VSNU_RUCS_PROV, @VSCO_MONE,      
      @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_IIGV_ORIX, @VNIM_FONA_ORIX,      
      @VNIM_RENT_ORIX, @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX,       
      @VNIM_IIGV_SOLX, @VNIM_FONA_SOLX, @VNIM_RENT_SOLX, @VNIM_TOTA_SOLX,       
      @VNFA_CAMB, 0.00, 0.00, 0.00, 0.00, 0.00)      
  End      
      
-- Select para construir la estructura del archivo PDT      
Insert into TWPDTS_RETE(CO_LINE)      
 Select IsNull(Substring(t1.NU_RUCS, 1, 11),'') + '|' + IsNull(Substring(t1.AP_PATE_AUXI,1 , 20),'') + '|' +       
        IsNull(Substring(t1.AP_MATE_AUXI, 1, 20),'') + '|' +       
        Rtrim(Substring(IsNull(t1.NO_NATU_AUX1,'') + ' ' + IsNull(t1.NO_NATU_AUX2,''), 1, 20)) + '|' +      
--  IsNull(Substring(t2.NU_DOCU, 1, IsNull(t3.NU_LONG_SERI,0)),'') + '|' + IsNull(Rtrim(Substring(t2.NU_DOCU,IsNull(t3.NU_LONG_SERI,0)+2, 20)),'') + '|' +      
  Right(IsNull(Substring(t2.NU_DOCU, 1, IsNull(t3.NU_LONG_SERI,0)),''),4) + '|' +     
(Case When t3.ST_SERI = 'S' Then IsNull(Right(Rtrim(Ltrim(Substring(t2.NU_DOCU,t3.NU_LONG_SERI + 2,20))), 8),'')     
Else IsNull(Right(t2.NU_DOCU, 8),'')  End)     
 + '|' +      
        IsNull(Convert(Varchar(10), t2.FE_DOCU, 103),'') + '|' +      
        Rtrim(Ltrim(Str(IsNull(Abs(t2.IM_INAF_SOLE),0)+IsNull(Abs(t2.IM_RENT_SOLE),0), 15, 2))) + '|' +      
        (Case       
            When t2.IM_RENT_SOLE != 0 Then '1'      
            Else '0'       
        End) + '|' +         
--        Ltrim(Rtrim(IsNull(Str(@VNPO_IESS, 2, 0),''))) + '|' +      
        Ltrim(Rtrim(IsNull(Str(@VNPO_REN1_0001, 2, 0),''))) + '|' +      
        (Case       
            When t2.IM_FONA_SOLE != 0 Then '1'      
            Else ' '       
        End) + '|' +      
        IsNull(t1.NU_RETE_SUNA,'') + '|'      
  From TMAUXI_EMPR t1, #TWMVTO_CNTB_Q26_1 t2,TTDOCU_CNTB t3      
 Where t1.CO_EMPR = @ISCO_EMPR      
  And t1.TI_AUXI_EMPR = t2.TI_AUXI_EMPR       
  And t1.CO_AUXI_EMPR = t2.CO_PROV      
  And t2.TI_DOCU_SUNA = '02'      
  And t3.TI_DOCU = t2.TI_DOCU_CNTB     
 Order by t1.NU_RUCS      
    
/*select CO_LINE from TWPDTS_RETE     
WHERE SUBSTRING(CO_LINE,1,11) NOT IN (SELECT NU_RUCS FROM TMAUXI_EMPR WHERE LEN(NU_RUCS) > 0)    
*/    
    
---SELECT DISTINCT LEN(CO_LINE)from TWPDTS_RETE     
    
      
Return      
/*--------------------------------- Fin -------------------------------------*/      
  



GO
